const logger = require('@/loggerMiddleware');

// 捕获错误处理中间件
const errorHandler = async (ctx, next) => {
    try {
        await next();
        // 记录info级别的日志
        logger.info(`输出日志：${ctx.method} ${ctx.url}`);
    } catch (errorData) {
        // 记录error级别的日志
        logger.error(errorData);
        console.log('捕获到了错误');
        // 接收参数校验的错误
        if (errorData.validata === null) {
            const { code, msg, error } = errorData;
            const errorVal = error || null;
            ctx.send(null, code, msg, errorVal);
        } else {
            console.log(errorData);
            const error = errorData.message || '异常错误，请查看服务器端日志';
            const status = errorData.status || errorData.statusCode || 500;
            ctx.send(null, status, "服务器端异常错误", error);
        }
    }
}
module.exports = errorHandler;
